/*
 * @features: 功能
 * @description: 说明
 * @Date: 2021-09-22 23:43:12
 * @Author: judu233(769471424@qq.com)
 * @LastEditTime: 2021-10-28 22:59:42
 * @LastEditors: judu233
 */

/**
 * 登录流程 , 不用导出
 */

import { HotUpdate } from "../../Asset/hotupdate/Hotupdate";
import UIView from "../../Asset/ui/UIView";
import { Config, ViewZOrder } from "../../config/Config";
import { Macro } from "../../Main/Macros";
import c3d from "../../tool/cc";
import { Entry } from "../Entry";
import LoginView from "./view/LoginView";

class LoginEntry extends Entry {
    static bundle = Macro.BUNDLE_RESOURCES;
    /**是否是主包入口，只能有一个主包入口 */
    isMain = true;

    protected addNetHandler(): void {
    }
    protected removeNetHandler(): void {
    }
    protected loadResources(completeCb: () => void): void {
        completeCb();
    }
    protected openGameView(): void {
        GM.uiMgr.open({ type: LoginView, zIndex: ViewZOrder.zero, bundle: this.bundle });
        GM.entryMgr.onCheckUpdate();
    }
    protected closeGameView(): void {
        GM.uiMgr.close(LoginView);
    }
    protected initData(): void {
        let labelList = GM.i18n.trans;
        Config.ENTRY_CONFIG[Config.BUNDLE_HALL] = new HotUpdate.BundleConfig(labelList.hallText, Config.BUNDLE_HALL, true);
        Config.ENTRY_CONFIG[Macro.BUNDLE_RESOURCES] = new HotUpdate.BundleConfig(labelList.mainPack, Macro.BUNDLE_RESOURCES, true);
    }
    protected pauseMessageQueue(): void {
    }
    protected resumeMessageQueue(): void {
    }

    /**管理器通知自己进入GameView */
    onEnter(isQuitGame: boolean) {
        super.onEnter(isQuitGame);
        c3d.log(`--------------onEnterLogin--------------`);
        if (!isQuitGame) {
            GM.uiMgr.loading.show(0.1,GM.i18n.trans.checkingUpdate);
        }
    }

    /**这个位置说明自己GameView 进入onLoad完成 */
    onEnterGameView(gameView: UIView) {
        super.onEnterGameView(gameView);
        //销毁所有网络Handler
        // Manager.netHelper.clearHandler();
        // //销毁所有网络Sender
        // Manager.netHelper.clearSender();
        // //关闭网络
        // Manager.serviceManager.close();
        // //卸载proto
        // engine.protoManager.unload();
        //关闭除登录之外的界面
        GM.uiMgr.closeExcept([LoginView]);
        //清理所有数据中数据
        GM.dataMgr.clear();
    }

    /**卸载bundle,即在自己bundle删除之前最后的一条消息 */
    onUnloadBundle() {
        //移除本模块网络事件
        this.removeNetHandler();
        //卸载资源
        this.unloadResources();
    }
}
// GM.entryMgr.register(LoginEntry);
